package com.tdkj.service.user.impl;

import java.util.HashMap;
import java.util.Map;

import org.hibernate.Query;
import org.springframework.stereotype.Component;

import com.tdkj.model.user.BeanUser;
import com.tdkj.model.user.BeanUserExperiences;
import com.tdkj.service.BaseService;
import com.tdkj.service.user.IBeanUserExperienceService;
@Component
public class BeanUserExperienceServiceImpl extends BaseService implements
		IBeanUserExperienceService {
	
	private Map<String,Integer> convertToMap(BeanUserExperiences bean){
		
		Map<String,Integer> map = new HashMap<String,Integer>();
		
		// ---------------会员状态类--------------------
		map.put("userStateC1", bean.getUserStateC1());// 注册成为会员
		map.put("userStateC2", bean.getUserStateC2());// 登录网站
		map.put("userStateC3", bean.getUserStateC3());// 会员在线(按小时计算)
		map.put("userStateC4", bean.getUserStateC4());// 成为认证会员
		// ---------------会员状态类end------------------

		// ---------------信息类--------------------
		map.put("userinformationC1", bean.getUserinformationC1());// 发布新闻、资讯类 信息成功通过审核
		map.put("userinformationC2", bean.getUserinformationC2());// 新闻、资讯类 信息被删除
		map.put("userinformationC3", bean.getUserinformationC3());// 发布招聘、求职信息成功通过审核
		map.put("userinformationC4", bean.getUserinformationC4());// 招聘、求职 信息被删除
		map.put("userinformationC5", bean.getUserinformationC5());// 发布供应、求购 信息成功通过审核
		map.put("userinformationC6", bean.getUserinformationC6());// 供应、求购 信息被删除
		// ---------------信息类end------------------

		// ---------------商城管理买家类------------------
		map.put("userBuyerC1", bean.getUserBuyerC1());// 买家成功买到商品
		map.put("userBuyerC2", bean.getUserBuyerC2());// 买家成功竞拍到商品并交易成功
		map.put("userBuyerC3", bean.getUserBuyerC3());// 发布商品求购
		map.put("userBuyerC4", bean.getUserBuyerC4());// 买家被好评
		map.put("userBuyerC5", bean.getUserBuyerC5());// 买家被中评
		map.put("userBuyerC6", bean.getUserBuyerC6());// 买家被差评
		// ---------------商城管理买家类end------------------

		// ---------------商城管理卖家类------------------
		map.put("userSellerC1", bean.getUserSellerC1());// 卖家发布商品
		map.put("userSellerC2", bean.getUserSellerC2());// 卖家商品违规被删
		map.put("userSellerC3", bean.getUserSellerC3());// 卖家成功卖出商品
		map.put("userSellerC4", bean.getUserSellerC4());// 卖家商品竞拍交易成功
		map.put("userSellerC5", bean.getUserSellerC5());// 卖家被退货
		map.put("userSellerC6", bean.getUserSellerC6());// 卖家被好评
		map.put("userSellerC7", bean.getUserSellerC7());// 卖家被中评
		map.put("userSellerC8", bean.getUserSellerC8());// 卖家被差评
		// ---------------商城管理卖家类end------------------

		// ---------------专家管理类------------------
		map.put("userExpertC1", bean.getUserExpertC1());// 成为专家
		map.put("userExpertC2", bean.getUserExpertC2());// 专家资格被取消
		map.put("userExpertC3", bean.getUserExpertC3());// 发布专家文献
		map.put("userExpertC4", bean.getUserExpertC4());// 文献被删除
		// ---------------专家管理类end-----------------

		// ---------------空间管理类------------------
		map.put("userSpaceC1", bean.getUserSpaceC1());// 发布介绍
		map.put("userSpaceC2", bean.getUserSpaceC2());// 发布新闻
		map.put("userSpaceC3", bean.getUserSpaceC3());// 发布公告
		map.put("userSpaceC4", bean.getUserSpaceC4());// 发布留言
		map.put("userSpaceC5", bean.getUserSpaceC5());// 回复留言
		map.put("userSpaceC6", bean.getUserSpaceC6());// 发布联系方式
		map.put("userSpaceC7", bean.getUserSpaceC7());// 空间装扮购买（按月算经验值）
		// ---------------空间管理类End-----------------

		// ---------------店铺管理类------------------
		map.put("userShopC1", bean.getUserShopC1());// 货架购买（按个算经验值）
		map.put("userShopC2", bean.getUserShopC2());// 商品推荐（按个算经验值）
		map.put("userShopC3", bean.getUserShopC3());// 店铺装扮购买（按月算经验值）
		// ---------------店铺管理类end----------------

		// ---------------增值服务类------------------
		map.put("userAppreciationC1", bean.getUserAppreciationC1());// 参与广告竞价
		map.put("userAppreciationC2", bean.getUserAppreciationC2());// 广告竞价成功
		map.put("userAppreciationC3", bean.getUserAppreciationC3());// 参与信息竞价
		map.put("userAppreciationC4", bean.getUserAppreciationC4());// 信息竞价成功
		map.put("userAppreciationC5", bean.getUserAppreciationC5());// 手机短信订阅成功（按月算经验值）
		map.put("userAppreciationC6", bean.getUserAppreciationC6());// 信息飘彩（按天算经验值）
		map.put("userAppreciationC7", bean.getUserAppreciationC7());// 行情指导（按月算经验值）
		map.put("userAppreciationC8", bean.getUserAppreciationC8());// 黄钻购买（按月算经验值）
		map.put("userAppreciationC9", bean.getUserAppreciationC9());// 紫钻购买（按月算经验值）
		// ---------------增值服务类end-----------------

		// ---------------免费发布类------------------
		map.put("userFreeC1", bean.getUserFreeC1());// 发布自助广告
		map.put("userFreeC2", bean.getUserFreeC2());// 自助广告违规被删
		// ---------------免费发布类end------------------

		// ---------------金融中心类------------------
		map.put("userBankingC1", bean.getUserBankingC1());
		map.put("userBankingC2", bean.getUserBankingC2());
		map.put("userBankingC3", bean.getUserBankingC3());
		// ---------------金融中心类end------------------

		// ---------------评论回复类 （所有评论回复）------------------
		map.put("userCommentC1", bean.getUserCommentC1());//发表评论
		map.put("userCommentC2", bean.getUserCommentC2());//发表回复
		map.put("userCommentC3", bean.getUserCommentC3());//评论被删除
		map.put("userCommentC4", bean.getUserCommentC4());//回复被删除
		
		return map;
		
	}

	@Override
	public Integer getAddExperience(String key) {
		String hql = "from " + BeanUserExperiences.class.getName() + " as bean where bean.type='1'";
		Query query = this.getBaseDao().getSession().createQuery(hql);
		BeanUserExperiences bean = (BeanUserExperiences)query.uniqueResult();
		return convertToMap(bean).get(key);
	}

	@Override
	public Integer getAddIntegral(Long userId, String key) {
		BeanUser user = this.getBaseDao().findById(userId, BeanUser.class);
		return convertToMap(user.getUserLevel().getBeanUserExperiences()).get(key);
	}

}
